11. 各云平台比较




有许多机器学习云平台,我们在这里展示了以下几个平台的介绍。在接下来的几节课中,您将学习如何使用Amazon的SageMaker来部署机器学习模型。因此,我们提供了有关亚马逊SageMaker的更多信息。为了比较SageMaker提供的功能,我们还详细提供了有关Google ML引擎的信息,因为它们两者最为相似。

亚马逊网络服务(AWS)

亚马逊网络服务(AWS)SageMaker是亚马逊的云服务,允许您构建,培训和部署机器学习模型。使用亚马逊SageMaker服务的一些优点如下:

  • 机器学习语言的灵活性:SageMaker可以灵活地使用任何编程语言或软件框架来构建,培训和部署AWS中的机器学习模型。详细信息,可以参阅下面SageMaker中的三种建模方法。
    • 内置算法 - 在SageMaker中可以轻松使用至少十五种内置算法。具体而言,包括使用linear regression或XGBoost进行离散分类或定量分析的内置算法,也包括使K-Means基于属性的分组算法,以及图像分类算法等许多其他算法。
    • 自定义算法 - SageMaker中有不同的编程语言和软件框架可用于开发自定义算法,包括:PyTorch,TensorFlow,Apache MXNet,Apache Spark和Chainer。
    • 自己的算法 - 无论编程语言或软件框架如何,当你的算法未包含在上述内置算法或自定义算法中时,您可以使用自己的算法。
  • SageMaker中可以探索和处理数据:SageMaker支持使用Jupyter noteook来探索和处理数据,也支持对机器学习模型的创建,培训,验证,测试和部署。该Jupyter Notebook界面使数据探索和文档更容易。
  • SageMaker建模和部署的灵活性:SageMaker提供了许多功能和自动化工具,使建模和部署更加容易。有关SageMaker中这些功能的详细信息,请参阅下文。
    • 自动模型调整:SageMaker提供的功能允许超参数的自动调整,以便为内置和自定义算法找到最佳的模型参数。对于内置算法,SageMaker还提供评估指标以评估模型的性能。
    • 监控模型:SageMaker提供的功能允许你监控已部署的模型。此外,通过模型部署,可以监控路由到每个部署模型(模型变体)的流量。
    • 预测类型:默认情况下,SageMaker允许按需预测类型,其中每个预测请求可以包含一个到多个请求。
  • SageMaker还允许批量预测,请求数据大小限制基于S3对象大小限制。

Google云端平台(GCP)

Google Cloud Platform(GCP)ML Engine是Google的云服务,可让您构建,培训和部署机器学习模型。下面我们重点介绍了这两个云服务平台之间的一些相似点和不同点。

  • 预测成本:两者之间的主要区别在于它们如何处理预测数据。使用SageMaker预测,您必须保持模型运行以提供预测。如果在服务运行时没有(或很少)预测请求,则也需要支付模型运行的费用。使用ML Engine预测,可以选择不让模型运行,从而降低与不频繁或定期请求相关的成本。因为模型处于脱机状态,直到它们收到预测请求。增加的延迟与将模型重启有关,但这样的设置只需支付模型使用的时间。
  • 探索和处理数据的能力:ML Engine和SageMaker之间的另一个区别是ML Engine中没有Jupyter Notebook。要在Google的云平台(GCP)中使用Jupyter Notebook,可以使用Datalab。 GCP将数据探索,处理和转换分为其他服务。具体而言,Google的Datalab可用于数据探索和数据处理,Dataprep可用于探索原始数据并将其转换为干净的数据以进行分析和处理,DataFlow可用于部署批量和流数据处理流水线。注意到Amazon Web Services(AWS)也具有AWS Glue和AWS Data Pipeline等数据处理和转换管道服务。
  • 机器学习模型:最终的区别在于,与亚马逊的SageMaker相比,Google的ML引擎在GCP中构建,培训和部署机器学习模型的可用软件框架的灵活性较低。有关ML Engine内建模的两个可用软件框架的详细信息,请参阅下文。
    • Google的TensorFlow是一个开源机器学习框架,最初由Google Brain团队开发。 TensorFlow可用于创建,培训和部署机器学习和深度学习模型。 Keras是一个用Python编写的更高级别的API,它运行在TensorFlow之上,更易于使用,并允许更快的开发。 GCP提供了TensorFlow示例和Keras示例。
    • Google的Scikit-learn是一个Python开源机器学习框架,最初是作为Google Summer of Code项目开发的。 Scikit-learn和XGBoost Python软件包可以一起用于创建,培训和部署机器学习模型。在Google的示例中,XGBoost用于建模,Scikit-learn用于处理数据。
  • 建模和部署的灵活性:Google的ML引擎提供了许多功能和自动化工具,使建模和部署更加容易,类似于亚马逊SageMaker提供的功能。有关ML Engine内这些功能的详细信息,请参阅下文。
    • 自动超参数调整:Google的ML引擎提供了一项功能,可通过超参数调整来获得模型的最佳参数。
    • 监控模型:Google的ML Engine提供的功能可让您监控模型。此外,ML Engine提供的方法可以管理运行时版本以及管理模型和作业。
    • 预测类型:ML引擎允许On demand(或按需)类型的预测,其中每个预测请求可以包含一个到多个请求。 ML Engine还允许批量预测。

Microsoft Azure

与亚马逊的SageMaker和谷歌的ML引擎类似,微软提供Azure AI。 Azure AI提供了一个开放而全面的平台,其中包括人工智能软件框架,如:TensorFlow,PyTorch,scikit-learn,MxNet,Chainer,Caffe2以及Azure Machine Learning Studio等其他软件。有关更多详细信息,请参阅Azure AI和Azure Machine Learning Studio。

Paperspace

Paperspace简单地为GPU支持的虚拟机提供行业标准软件工具和框架,如:TensorFlow,Keras,Caffe和Torch,用于机器学习,深度学习和数据科学。 Paperspace自己的宣传语是,提供比AWS,GCP或Azure提供的功能更强大且更便宜的虚拟机。

Cloud Foundry

Cloud Foundry是一个开源云应用程序平台,由思科,谷歌,IBM,微软,SAP等公司提供支持。 Cloud Foundry通过为其用户提供云,开发人员框架和应用程序服务选项,来实现一种更快速,更轻松的方式来构建,测试,部署和扩展应用程序。 Cloud Foundry认证平台为组织提供了一种方式,使其云应用程序可以跨平台(包括IBM和SAP云平台)迁移。